package com.bd.wechat.utils;

import com.bd.wechat.entity.Store;

public class GeoUtils {
    private static final double EARTH_RADIUS = 6371.0; // 地球半径，单位：公里

    public static double haversine(double lat1, double lon1, double lat2, double lon2) {
        double dLat = Math.toRadians(lat2 - lat1);
        double dLon = Math.toRadians(lon2 - lon1);
        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
                        Math.sin(dLon / 2) * Math.sin(dLon / 2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        return EARTH_RADIUS * c;
    }

    public static double calculateDistance(Store store1, Store store2) {
        return haversine(store1.getLat(), store1.getLon(),
                store2.getLat(), store2.getLon());
    }
}
